home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat4 / system.z / system
Encoding:
Text File  |  2002-10-03  |  19.8 KB  |  397 lines

  1.  
  2.  
  3.  
  4. ssssyyyysssstttteeeemmmm((((4444))))                                                            ssssyyyysssstttteeeemmmm((((4444))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      system - system configuration information directory
  10.  
  11. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.      This directory contains files (with the _...._ssss_mmmm suffix) that are used by the
  13.      _llll_bbbb_oooo_oooo_tttt program to obtain configuration information.  These files generally
  14.      contain information used to determine if specified hardware exists, a
  15.      list of software drivers to include in the load, and the assignment of
  16.      system devices such as _r_o_o_t_d_e_v, as well as instructions for manually
  17.      overriding the drivers selected by the self-configuring boot process.
  18.  
  19.      Each major subsystem can have its own configuration file, for example:
  20.      _iiii_rrrr_iiii_xxxx_...._ssss_mmmm (base operating system configuration file), _gggg_ffff_xxxx_...._ssss_mmmm (graphics
  21.      subsystem configuration file), and so forth.  _llll_bbbb_oooo_oooo_tttt logically
  22.      concatenates all files in the _s_y_s_t_e_m directory with the _...._ssss_mmmm suffix and
  23.      processes the results.
  24.  
  25.      The syntax of the system files is given below.  The parser for the
  26.      _////_vvvv_aaaa_rrrr_////_ssss_yyyy_ssss_gggg_eeee_nnnn_////_ssss_yyyy_ssss_tttt_eeee_mmmm_////_****_...._ssss_mmmm file is case sensitive.  All uppercase strings in
  27.      the syntax below should be uppercase in the _////_vvvv_aaaa_rrrr_////_ssss_yyyy_ssss_gggg_eeee_nnnn_////_ssss_yyyy_ssss_tttt_eeee_mmmm_////_****_...._ssss_mmmm file
  28.      as well.  Nonterminal symbols are enclosed in angle brackets, , while
  29.      optional arguments are enclosed in square brackets, [].  Ellipses, ...,
  30.      indicate optional repetition of the argument for that line.
  31.  
  32.           _f_n_a_m_e ::= master filename from _////_mmmm_aaaa_ssss_tttt_eeee_rrrr_...._dddd directory
  33.           _f_u_n_c ::= interrupt function name
  34.           _d_e_v_i_c_e_f_i_l_e :: = special device name
  35.           _m_a_j_o_r ::= _n_u_m_b_e_r
  36.           _m_i_n_o_r ::= _n_u_m_b_e_r
  37.           _p_r_o_c ::= processor # as interpreted by _rrrr_uuuu_nnnn_oooo_nnnn(1)
  38.           _n_u_m_b_e_r ::= decimal, octal or hex literal
  39.  
  40.      _llll_bbbb_oooo_oooo_tttt can determine if hardware exists for a given module by use of probe
  41.      commands.  There are three distinct probe command formats.  The syntax
  42.      for the first type of probe command is:
  43.  
  44.           _p_r_o_b_e__c_m_d ::= probe=_n_u_m_b_e_r
  45.                [ probe_size=_n_u_m_b_e_r ] | _e_x_t_e_n_d_e_d__p_r_o_b_e
  46.           _e_x_t_e_n_d_e_d__p_r_o_b_e ::= exprobe=_p_r_o_b_e__s_e_q_u_e_n_c_e
  47.                | exprobe=(_p_r_o_b_e__s_e_q_u_e_n_c_e,_p_r_o_b_e__s_e_q_u_e_n_c_e,...)
  48.           _p_r_o_b_e__s_e_q_u_e_n_c_e ::= (_s_e_q,_a_d_d_r_e_s_s,_s_i_z_e,_v_a_l_u_e,_m_a_s_k)
  49.           _s_e_q ::= a sequence of 1 or more r's, rn's, or w's, indicating a
  50.                read from _a_d_d_r_e_s_s or a write to _a_d_d_r_e_s_s
  51.           _a_d_d_r_e_s_s ::= _n_u_m_b_e_r
  52.           _s_i_z_e ::= _n_u_m_b_e_r
  53.           _v_a_l_u_e ::= _n_u_m_b_e_r
  54.           _m_a_s_k ::= _n_u_m_b_e_r
  55.  
  56.      This probe command format allows the specification of an address, and
  57.      optionally, a number of bytes, to read.  If a probe address is specified,
  58.      the boot program attempts to read _p_r_o_b_e__s_i_z_e bytes (default 4) to
  59.      determine if the hardware exists for the module.  If the read succeeds,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ssssyyyysssstttteeeemmmm((((4444))))                                                            ssssyyyysssstttteeeemmmm((((4444))))
  71.  
  72.  
  73.  
  74.      the hardware is assumed to exist, and the module is included.
  75.  
  76.      The second probe command format provides the only means with which to
  77.      detect peripherals on the CHALLENGE and Onyx systems (note that this
  78.      format is supported on all Silicon Graphics platforms however).
  79.  
  80.           _p_r_o_b_e__c_m_d ::= probe_space=(_b_u_s__s_p_a_c_e,_n_u_m_b_e_r
  81.                [ probe_size=_n_u_m_b_e_r ] | _e_x_t_e_n_d_e_d__p_r_o_b_e)
  82.           _e_x_t_e_n_d_e_d__p_r_o_b_e ::= exprobe_space=_p_r_o_b_e__s_e_q_u_e_n_c_e
  83.                | exprobe_space=(_p_r_o_b_e__s_e_q_u_e_n_c_e,_p_r_o_b_e__s_e_q_u_e_n_c_e, ...)
  84.           _p_r_o_b_e__s_e_q_u_e_n_c_e ::= (_s_e_q,_b_u_s__s_p_a_c_e,_a_d_d_r_e_s_s,_s_i_z_e,
  85.                _v_a_l_u_e,_m_a_s_k)
  86.           _s_e_q ::= a sequence of 1 or more r's, rn's, or w's, indicating a
  87.                read from _a_d_d_r_e_s_s, or a write to _a_d_d_r_e_s_s.
  88.           _b_u_s__s_p_a_c_e ::= A16NP | A16S | A24NP | A24S | A32NP | A32S
  89.           _a_d_d_r_e_s_s ::= _n_u_m_b_e_r
  90.           _s_i_z_e ::= _n_u_m_b_e_r
  91.           _v_a_l_u_e ::= _n_u_m_b_e_r
  92.           _m_a_s_k ::= _n_u_m_b_e_r
  93.  
  94.      This extended format specifies a sequence of one or more five-tuples used
  95.      to determine if the hardware exists.  Each five-tuple specifies a
  96.      read/write _s_e_q_u_e_n_c_e, an _a_d_d_r_e_s_s to read or write, a _s_i_z_e of up to four
  97.      bytes, a _v_a_l_u_e, and a _m_a_s_k.  Then, for each five-tuple, the following is
  98.      performed:
  99.  
  100.           for each element in command do
  101.                if element == 'w' then
  102.                     if write(address, value & mask, size) != size then
  103.                          failure
  104.                if element == 'r' then
  105.                     if read(address, temp, size) != size then
  106.                          failure
  107.                     if suffix == 'n' then
  108.                          if temp & mask == value & mask then
  109.                               failure
  110.                     else
  111.                          if temp & mask != value & mask then
  112.                               failure
  113.  
  114.  
  115.      The third probe command format is required to detect XIO and PCI
  116.      peripherals on platforms such as Octane and Origin.
  117.  
  118.           _p_r_o_b_e__c_m_d ::= probe_path=_p_a_t_h_n_a_m_e
  119.  
  120.      The lines listed below can appear in any order.  Blank lines can be
  121.      inserted at any point.  Comment lines must begin with an asterisk.
  122.      Entries for VECTOR, EXCLUDE, and INCLUDE are cumulative.  For all other
  123.      entries, the last line to appear in the file is used -- any earlier
  124.      entries are ignored.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ssssyyyysssstttteeeemmmm((((4444))))                                                            ssssyyyysssstttteeeemmmm((((4444))))
  137.  
  138.  
  139.  
  140.      There are three styles of VECTOR line.  The first version is the
  141.      historical version and does not work on platforms such as the CHALLENGE
  142.      and Onyx series.  The second VECTOR command supports the CHALLENGE and
  143.      Onyx series along with bus types such as EISA.  The second version is the
  144.      preferred method for non XIO/PCI devices since it works across all
  145.      Silicon Graphics platforms.  The third version should be used for Origin,
  146.      Octane, and O2 devices that use the XIO or PCI bus.
  147.  
  148.      VECTOR: module=_f_n_a_m_e [ intr=_f_u_n_c ]
  149.      [ vector=_n_u_m_b_e_r ipl=_n_u_m_b_e_r unit=_n_u_m_b_e_r ] [ base=_n_u_m_b_e_r ]
  150.      [ base2=_n_u_m_b_e_r ] [ base3=_n_u_m_b_e_r ]
  151.      [ _p_r_o_b_e__c_m_d ]
  152.      [ intrcpu=_n_u_m_b_e_r ] [ syscallcpu=_n_u_m_b_e_r ]
  153.  
  154.           Specifies hardware to conditionally load.  (Note that this must be a
  155.           single line.)  If a probe command is specified, the boot program
  156.           performs the probe sequence, as discussed above.  If the sequence
  157.           succeeds, the module is included.
  158.  
  159.           If a probe sequence is not specified, the hardware is assumed to
  160.           exist.  The _iiii_nnnn_tttt_rrrr function specifies the name of the module's
  161.           interrupt handler.  If it is not specified, the prefix defined in
  162.           the module's master file (see _mmmm_aaaa_ssss_tttt_eeee_rrrr(4)) is concatenated with the
  163.           string _iiii_nnnn_tttt_rrrr, and, if a routine with that name is found in the
  164.           module's object (which resides in the directory _////_vvvv_aaaa_rrrr_////_ssss_yyyy_ssss_gggg_eeee_nnnn_////_bbbb_oooo_oooo_tttt),
  165.           it is used as the interrupt routine.
  166.  
  167.           If the triplet (vector, ipl, unit, base) is specified, a VME
  168.           interrupt structure is assigned, using the corresponding VME address
  169.           _v_e_c_t_o_r, priority level _i_p_l, unit _u_n_i_t.
  170.  
  171.           If the modules' object contains a routine whose name is the
  172.           concatenation of the master file prefix and _eeee_dddd_tttt_iiii_nnnn_iiii_tttt, that routine is
  173.           involved once at startup and passed a pointer to an edt structure
  174.           that contains the values for base, base2, base3, and a pointer to
  175.           the VME interrupt structure.
  176.  
  177.           If intrcpu is specified, it hints to the driver the desired CPU to
  178.           take interrupts on.  This is only a hint and may not be honored in
  179.           all cases.
  180.  
  181.           If syscallcpu is specified, it indicates the CPU to run non-MP
  182.           driver syscalls on.  This directive is always honored for non-MP
  183.           drivers, and is silently ignored by MP drivers.  This option should
  184.           be used with caution because non-MP drivers may expect their
  185.           syscalls and interrupts to run on the same CPU.
  186.  
  187.      VECTOR: bustype=_b_u_s_t_y_p_e module=_f_n_a_m_e adapter=_n_u_m_b_e_r ipl=_n_u_m_b_e_r
  188.      [ intr=_f_u_n_c ] [ vector=_n_u_m_b_e_r ] [ ctlr=_n_u_m_b_e_r ]
  189.      [ iospace=(_a_d_d_r_e_s_s-_s_p_a_c_e,_a_d_d_r_e_s_s,_s_i_z_e) ]
  190.      [ iospace2=(_a_d_d_r_e_s_s-_s_p_a_c_e,_a_d_d_r_e_s_s,_s_i_z_e) ]
  191.      [ iospace3=(_a_d_d_r_e_s_s-_s_p_a_c_e,_a_d_d_r_e_s_s,_s_i_z_e) ]
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ssssyyyysssstttteeeemmmm((((4444))))                                                            ssssyyyysssstttteeeemmmm((((4444))))
  203.  
  204.  
  205.  
  206.      [ _p_r_o_b_e__c_m_d ]
  207.  
  208.           Specifies hardware to conditionally load.  (Note that this must be a
  209.           single line.)  If a probe command is specified, the boot program
  210.           performs the probe sequence, as discussed above.  If the sequence
  211.           succeeds, the module is included.
  212.  
  213.           If a probe sequence is not specified, the hardware is assumed to
  214.           exist.  The bustype specifies the type of bus on which the device is
  215.           connected.  This is VME for a VME bus.
  216.  
  217.           The adapter specifies to which bus of type bustype the device is
  218.           connected.  If adapter is set to _****, the system looks at each bus of
  219.           type bustype to find the device.
  220.  
  221.           The _iiii_nnnn_tttt_rrrr function specifies the name of the module's interrupt
  222.           handler.  If it is not specified, the prefix defined in the module's
  223.           master file (see _mmmm_aaaa_ssss_tttt_eeee_rrrr(4)) is concatenated with the string _iiii_nnnn_tttt_rrrr and
  224.           if a routine with that name is found in the module's object (which
  225.           resides in the directory _////_vvvv_aaaa_rrrr_////_ssss_yyyy_ssss_gggg_eeee_nnnn_////_bbbb_oooo_oooo_tttt), it is used as the
  226.           interrupt routine.
  227.  
  228.           If the vector is not specified, it is assumed to be programmable.
  229.           The ctlr field is used to pass a value into the driver that is
  230.           specific to the device.  This can be used to identify which device
  231.           is present when there are multiple VECTOR lines for a particular
  232.           device.
  233.  
  234.           If the modules' object contains a routine whose name is the
  235.           concatenation of the master file prefix and _eeee_dddd_tttt_iiii_nnnn_iiii_tttt, that routine is
  236.           involved once at startup and passed a pointer to an edt structure
  237.           that contains the values for iospace, iospace2, iospace3, and a
  238.           pointer to the bus info structure.
  239.  
  240.      VECTOR: module=_f_n_a_m_e probe_path=_p_a_t_h_n_a_m_e
  241.  
  242.           Specifies hardware to conditionally load (note that this must be a
  243.           single line).  When a device with a vendor ID and device ID is found
  244.           on the system, the XIO/PCI infrastructure will add a node in the
  245.           hardware graph, accessible via the format
  246.           /_h_w/._i_d/{_p_c_i,_x_i_o}/[_v_e_n_d_o_r_i_d][_d_e_v_i_c_e_i_d].  For example, a PCI token
  247.           ring card might be described by _////_hhhh_wwww_////_...._iiii_dddd_////_pppp_cccc_iiii_////_1111_0000_BBBB_6666_0000_0000_0000_2222 (note the id is
  248.           specified in hexadecimal with capital letters).  When _llll_bbbb_oooo_oooo_tttt
  249.           configures the system, if _p_a_t_h_n_a_m_e exists then the driver specified
  250.           by _f_n_a_m_e will be loaded.
  251.  
  252.      EXCLUDE: [ _s_t_r_i_n_g ] ...
  253.  
  254.           Specifies drivers to exclude from the load even if the device is
  255.           found via VECTOR information.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ssssyyyysssstttteeeemmmm((((4444))))                                                            ssssyyyysssstttteeeemmmm((((4444))))
  269.  
  270.  
  271.  
  272.      INCLUDE: [ _s_t_r_i_n_g[(_n_u_m_b_e_r)] ] ...
  273.  
  274.           Specifies software drivers or loadable modules to be included in the
  275.           load.  This is necessary to include the drivers for software
  276.           devices.  The optional _n_u_m_b_e_r (parenthesis required) specifies the
  277.           number of devices to be controlled by the driver (defaults to 1).
  278.           This number corresponds to the builtin variable ##_c which can be
  279.           referred to by expressions in part two of the _////_vvvv_aaaa_rrrr_////_ssss_yyyy_ssss_gggg_eeee_nnnn_////_mmmm_aaaa_ssss_tttt_eeee_rrrr
  280.           file.
  281.  
  282.      ROOTDEV: _d_e_v_i_c_e_f_i_l_e
  283.  
  284.           Identifies the device containing the root filesystem.
  285.  
  286.      SWAPDEV: _d_e_v_i_c_e_f_i_l_e _n_u_m_b_e_r _n_u_m_b_e_r
  287.  
  288.           Identifies the device to be used as swap space, the block number the
  289.           swap space starts at, and the number of swap blocks available.
  290.  
  291.      DUMPDEV: _d_e_v_i_c_e_f_i_l_e
  292.  
  293.           Identifies the device to be used for kernel dumps.
  294.  
  295.      IPL: _I_R_Q _l_e_v_e_l _p_r_o_c
  296.  
  297.           Send VME interrupt at _I_R_Q _l_e_v_e_l to _p_r_o_c.  If _p_r_o_c does not exist at
  298.           run time, the kernel defaults to use processor 0.
  299.  
  300.      USE: [ _s_t_r_i_n_g[(_n_u_m_b_e_r)] [ _e_x_t_e_n_d_e_d__p_r_o_b_e ] ] ...
  301.  
  302.           If the driver is present, it is the same as INCLUDE.  Behaves like
  303.           EXCLUDE if the module or driver is not present in _////_vvvv_aaaa_rrrr_////_ssss_yyyy_ssss_gggg_eeee_nnnn_////_bbbb_oooo_oooo_tttt.
  304.  
  305.      KERNEL: [ _s_t_r_i_n_g ] ...
  306.  
  307.           Specifies the module containing the heart of the operating system.
  308.           It must be present in the system file.
  309.  
  310.      NOINTR: _p_r_o_c ...
  311.  
  312.           In Origin, Onyx2, OCTANE, CHALLENGE and Onyx systems, NOINTR
  313.           provides a way to prevent processor(s) from receiving any interrupt
  314.           other than the VME IRQ levels defined using IPL directive. This can
  315.           be used for marking a processor for real time purpose. CPU 0
  316.           although should not be restricted from receiving interrupts. This
  317.           directive is ignored on all other platforms.
  318.  
  319.      LINKMODULES: _1|_0
  320.  
  321.           If set to 1, this option causes _llll_bbbb_oooo_oooo_tttt to ignore the _dddd option in all
  322.           master files and link all necessary modules into the kernel.
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ssssyyyysssstttteeeemmmm((((4444))))                                                            ssssyyyysssstttteeeemmmm((((4444))))
  335.  
  336.  
  337.  
  338.      CC
  339.      LD
  340.  
  341.           The names of the compiler and linker used to build the kernel.  If
  342.           absent, they default to _cccc_cccc and _llll_dddd, respectively.
  343.  
  344.      CCOPTS
  345.      LDOPTS
  346.  
  347.           Option strings given to _cccc_cccc(1) and _llll_dddd(1) respectively, to compile the
  348.           _mmmm_aaaa_ssss_tttt_eeee_rrrr_...._cccc file and link the operating system.
  349.  
  350.      TUNE-TAG: _s_t_r_i_n_g ...
  351.  
  352.           Sets a set of tags to be used to qualify the various tunable
  353.           parameters for inclusion.  If a tunable parameter has no tag (see
  354.           _mmmm_tttt_uuuu_nnnn_eeee(4)), it is always included.  If a tunable parameter has a tag,
  355.           it is included only if the tag matches one of the tags specified by
  356.           this parameter or via the _----_OOOO option to _llll_bbbb_oooo_oooo_tttt.  Tags can be used to
  357.           permit a single set of _mmmm_tttt_uuuu_nnnn_eeee and _ssss_tttt_uuuu_nnnn_eeee files to represent many
  358.           different configurations.
  359.  
  360.      DEVICE_ADMIN: _h_w_g_r_a_p_h-_d_e_v_i_c_e-_n_a_m_e _v_a_r_i_a_b_l_e-_n_a_m_e=_v_a_l_u_e
  361.  
  362.           Associates information (value) with the specified device and
  363.           variable name for later interpretation by a device driver or other
  364.           system software.  This allows for a single mechanism that device
  365.           drivers may use to establish arbitrary "contracts" with the
  366.           administrator.  The particular variable names used by a driver and
  367.           the interpretation of their values are described in that device
  368.           driver's documentation.
  369.  
  370.      DRIVER_ADMIN: _d_e_v_i_c_e-_d_r_i_v_e_r-_n_a_m_e _v_a_r_i_a_b_l_e-_n_a_m_e=_v_a_l_u_e
  371.  
  372.           Works just like DEVICE_ADMIN, but for device drivers rather than for
  373.           instances of devices.  Interpretation of variable names and values
  374.           is defined by the driver and described in device driver
  375.           documentation.
  376.  
  377. FFFFIIIILLLLEEEESSSS
  378.      /var/sysgen/system/*.sm
  379.      /usr/include/sys/edt.h
  380.  
  381. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  382.      lboot(1M), master(4), mtune(4), stune(4).
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.